7845. Больше своих соседей

 

Дан массив из n целых чисел. Определите, сколько в нем элементов, больших двух своих соседей, и выведите количество таких элементов. Крайние элементы списка не учитывать, поскольку у них мало соседей.

 

Вход. В первой строке записано число n. В следующей строке записано n целых чисел. Все числа по модулю не превосходят 100.

 

Выход. Вывести количество элементов, которые больше своих двух соседей.

 

Пример входа

Пример выхода

7

9 5 -7 -7 5 -9 -4

1

 

 

РЕШЕНИЕ

массив

 

Анализ алгоритма

Пусть массив m содержит входную последовательность чисел. Нумерация элементов массива начинается с 0. Массив содержит n чисел. Элемент m[i] имеет двух соседей, если только 1 in – 1.

Для подсчета количества элементов, которые больше своих двух соседей, следует перебрать все такие m[i], что 1 ≤ in – 1, и проверить выполнение двух условий: m[i – 1] < m[i] и m[i] > m[i + 1].

 

Реализация алгоритма

Объявим рабочий массив.

 

int m[101];

 

Читаем количество входных чисел n.

 

scanf("%d",&n);

 

Читаем входной массив.

 

for (i = 0; i < n; i++)

  scanf("%d", &m[i]);

 

В переменной res подсчитываем количество элементов, которые больше своих двух соседей.

 

res = 0;

 

Перебираем все такие m[i] что 1 ≤ in – 1 и проверяем выполнение двух условий: m[i – 1] < m[i] и m[i] > m[i + 1].

 

for (i = 1; i < n - 1; i++)

  if (m[i] > m[i - 1] && m[i] > m[i + 1]) res++;

 

Выводим ответ.

 

printf("%d\n", res);